package com.sdhs.common.utils.mqtt.service;


import com.sdhs.common.utils.mqtt.MqttMessageDTO;

public interface MqttService {

	public void sendMessage(MqttMessageDTO messageDTO);

	public void sendToLoginUser(String fromUser,Object data);

	/**
	 * 给指定用户发送消息
	 * @param userName
	 * @param data
	 */
	public void sendToUser(String userName, Object data);


	/**
	 * 给指定用户发送消息
	 * @param msgType
	 * @param  userName
	 * @param data
	 */
	public void sendToUser(String msgType, String userName, Object data);
	/**
	 * 给全部通信信道发送信息
	 * @param data
	 */
	public void sendAll(Object data);

	/**
	 * 给全部通信信道发送信息
	 * @param data
	 */
	public void sendAll(String msgType, Object data);

	/**
	 * 给某个应用发送信息
	 * @param appId
	 * @param data
	 */
	public void sendApplication(String appId, Object data);

	/**
	 * 给某个应用发送信息
	 * @param appId
	 * @param data
	 */
	public void sendApplication(String msgType, String appId, Object data);

	/**
	 * 给某个Topic发送信息,现在作为智慧高速一个大应用
	 * @param topic
	 * @param data
	 */
	public void sendTopic(String topic, Object data);

	/**
	 * 发送主题
	 * @param  msgType
	 * @param topic
	 * @param data
	 */
	public void sendTopic(String msgType, String topic, Object data);


	/**
	 * 公共主题信息, 无需登录即可接收
	 * @param  msgType
	 * @param topic
	 * @param data
	 */
	public void sendPubicTopic(String msgType, String topic, Object data);

	/**
	 * 更新在线用户
	 */
	public void updateOnline();

}
